/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package com.lostreseditores.vista;

import com.lostreseditores.logica.CalificacionLogicaLocal;
import com.lostreseditores.logica.CategoriaExamenLogicaLocal;
import com.lostreseditores.logica.CursoLogicaLocal;
import com.lostreseditores.logica.GradoLogicaLocal;
import com.lostreseditores.logica.InstitucionLogicaLocal;
import com.lostreseditores.logica.PremarcadoLogicaLocal;
import com.lostreseditores.logica.RespuestasExamenLogicaLocal;
import com.lostreseditores.logica.TipoExamenLogicaLocal;
import com.lostreseditores.modelo.CategoriaExamen;
import com.lostreseditores.modelo.Curso;
import com.lostreseditores.modelo.Cursosestudiante;
import com.lostreseditores.modelo.Estudiante;
import com.lostreseditores.modelo.Examen;
import com.lostreseditores.modelo.Examenpreguntas;
import com.lostreseditores.modelo.Gradoinstitucion;
import com.lostreseditores.modelo.Institucion;
import com.lostreseditores.modelo.Premarcado;
import com.lostreseditores.modelo.PremarcadoPK;
import com.lostreseditores.modelo.Presentaexamen;
import com.lostreseditores.modelo.Respuestasexamen;
import com.lostreseditores.modelo.Tipoexamen;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.ArrayList;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.ejb.EJB;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;
import javax.faces.context.FacesContext;
import javax.faces.model.SelectItem;
import javax.servlet.ServletContext;
import org.primefaces.component.commandbutton.CommandButton;
import org.primefaces.component.inputtext.InputText;
import org.primefaces.component.selectonemenu.SelectOneMenu;
import org.primefaces.event.CellEditEvent;
import org.primefaces.event.FileUploadEvent;
import org.primefaces.event.SelectEvent;

/**
 *
 * @author DILOVE
 */
@ManagedBean(name = "calificacionVista")
@RequestScoped
public class CalificacionVista {

    @EJB
    private InstitucionLogicaLocal institucionLogica;
    
    @EJB
    private CalificacionLogicaLocal calificacionLogica;

    @EJB
    private GradoLogicaLocal gradoLogica;

    @EJB
    private CategoriaExamenLogicaLocal categoriaExamenLogica;

    @EJB
    private TipoExamenLogicaLocal tipoExamenLogica;

    @EJB
    private CursoLogicaLocal cursoLogica;
    
    @EJB
    private PremarcadoLogicaLocal premarcadoLogica;
    
    @EJB
    private RespuestasExamenLogicaLocal respuestasExamenLogica;

    private InputText txtColegio;
    private InputText txtPremarcado;
    private InputText txtCurso;
    private InputText txtFecha;
    private SelectOneMenu cmbSesion;
    private SelectOneMenu cmbGrupo;
    private SelectOneMenu cmbCurso;
    private SelectOneMenu cmbCategoriaExamen;
    private SelectOneMenu cmbTipoExamen;
    private List<Examen> listaExamenes;
    private List<Premarcado> listaPremarcados;
    private List<Estudiante> listaEstudiantes;
    private List<Institucion> listaInstituciones;
    private List<Respuestasexamen> listaRespuestas;
    private List<Integer> preguntas;
    private CommandButton btnSeleccionarColegio;
    private CommandButton btnConsultarPremarcado;
    private CommandButton btnCargarRespuestas;
    private CommandButton btnNuevoEstudiante;
    private CommandButton btnSeleccionarPremarcado;
    private CommandButton btnCalificar;
    private CommandButton btnRegistrarCalificacion;
    private Institucion selectedInstitucion;
    private ArrayList<SelectItem> itemsGrupos;
    private ArrayList<SelectItem> itemsCursos;
    private ArrayList<SelectItem> itemsCategorias;
    private ArrayList<SelectItem> itemsTipo;
    private ArrayList<SelectItem> itemsSesiones;
    private Examen selectedExamen;
    private Premarcado selectedPremarcado;
    private Integer cantidadPreguntas;
    private String claveP;

    public CalificacionVista() {
    }

    public InputText getTxtColegio() {
        return txtColegio;
    }

    public void setTxtColegio(InputText txtColegio) {
        this.txtColegio = txtColegio;
    }

    public SelectOneMenu getCmbGrupo() {
        return cmbGrupo;
    }

    public void setCmbGrupo(SelectOneMenu cmbGrupo) {
        this.cmbGrupo = cmbGrupo;
    }

    public SelectOneMenu getCmbCurso() {
        return cmbCurso;
    }

    public void setCmbCurso(SelectOneMenu cmbCurso) {
        this.cmbCurso = cmbCurso;
    }

    public SelectOneMenu getCmbCategoriaExamen() {
        return cmbCategoriaExamen;
    }

    public void setCmbCategoriaExamen(SelectOneMenu cmbCategoriaExamen) {
        this.cmbCategoriaExamen = cmbCategoriaExamen;
    }

    public SelectOneMenu getCmbTipoExamen() {
        return cmbTipoExamen;
    }

    public void setCmbTipoExamen(SelectOneMenu cmbTipoExamen) {
        this.cmbTipoExamen = cmbTipoExamen;
    }

    public List<Examen> getListaExamenes() {
        return listaExamenes;
    }

    public void setListaExamenes(List<Examen> listaExamenes) {
        this.listaExamenes = listaExamenes;
    }

    public InputText getTxtPremarcado() {
        return txtPremarcado;
    }

    public void setTxtPremarcado(InputText txtPremarcado) {
        this.txtPremarcado = txtPremarcado;
    }
    
    

    public List<Premarcado> getListaPremarcados() {
         listaPremarcados = new ArrayList<>();
            try {
                Curso curso = cursoLogica.consultarPorId(Integer.parseInt(cmbCurso.getValue().toString()));
                listaPremarcados = curso.getPremarcadoList();
            } catch (Exception ex) {
                Logger.getLogger(CalificacionVista.class.getName()).log(Level.SEVERE, null, ex);
            }
        
        return listaPremarcados;
    }

    public void setListaPremarcados(List<Premarcado> listaPremarcados) {
        this.listaPremarcados = listaPremarcados;
    }

    public List<Estudiante> getListaEstudiantes() {
        listaEstudiantes = new ArrayList<>();
        try {            
            PremarcadoPK ppk = new PremarcadoPK(Integer.parseInt(txtPremarcado.getValue().toString()), Integer.parseInt(txtCurso.getValue().toString()));
            Premarcado preSelected = premarcadoLogica.consultarPorId(ppk);
            System.out.println("Premarcado "+preSelected.getPremarcadoPK().getIdExamen());
            List<Cursosestudiante> listadoEst = preSelected.getCurso().getCursosestudianteList();
            System.out.println("Tamaño de estudiantes curso "+listadoEst.size());
            txtPremarcado.setValue(preSelected.getPremarcadoPK().getIdExamen());
            txtCurso.setValue(preSelected.getPremarcadoPK().getIdCurso());
            txtFecha.setValue(preSelected.getFechapremarcado());
            List<Presentaexamen> presentaron = preSelected.getExamen().getPresentaexamenList();
            System.out.println("Cantidad presentaron "+presentaron.size());
            setSelectedPremarcado(preSelected);
            for (int j = 0; j < presentaron.size(); j++) {
                    listaEstudiantes.add(presentaron.get(j).getEstudiante());
            }     
        } catch (Exception ex) {
            Logger.getLogger(CalificacionVista.class.getName()).log(Level.SEVERE, null, ex);
        }
        return listaEstudiantes;
    }

    public void setListaEstudiantes(List<Estudiante> listaEstudiantes) {
        this.listaEstudiantes = listaEstudiantes;
    }

    public CommandButton getBtnConsultarPremarcado() {
        return btnConsultarPremarcado;
    }

    public void setBtnConsultarPremarcado(CommandButton btnConsultarPremarcado) {
        this.btnConsultarPremarcado = btnConsultarPremarcado;
    }

    public CommandButton getBtnCargarRespuestas() {
        return btnCargarRespuestas;
    }

    public void setBtnCargarRespuestas(CommandButton btnCargarRespuestas) {
        this.btnCargarRespuestas = btnCargarRespuestas;
    }

    public CommandButton getBtnNuevoEstudiante() {
        return btnNuevoEstudiante;
    }

    public void setBtnNuevoEstudiante(CommandButton btnNuevoEstudiante) {
        this.btnNuevoEstudiante = btnNuevoEstudiante;
    }

    public CommandButton getBtnSeleccionarPremarcado() {
        return btnSeleccionarPremarcado;
    }

    public void setBtnSeleccionarPremarcado(CommandButton btnSeleccionarPremarcado) {
        this.btnSeleccionarPremarcado = btnSeleccionarPremarcado;
    }

    public CommandButton getBtnCalificar() {
        return btnCalificar;
    }

    public void setBtnCalificar(CommandButton btnCalificar) {
        this.btnCalificar = btnCalificar;
    }

    public CommandButton getBtnRegistrarCalificacion() {
        return btnRegistrarCalificacion;
    }

    public void setBtnRegistrarCalificacion(CommandButton btnRegistrarCalificacion) {
        this.btnRegistrarCalificacion = btnRegistrarCalificacion;
    }

    public CommandButton getBtnSeleccionarColegio() {
        return btnSeleccionarColegio;
    }

    public void setBtnSeleccionarColegio(CommandButton btnSeleccionarColegio) {
        this.btnSeleccionarColegio = btnSeleccionarColegio;
    }

    public List<Institucion> getListaInstituciones() {
        if (listaInstituciones == null) {
            try {
                listaInstituciones = institucionLogica.consultar();
            } catch (Exception ex) {
                Logger.getLogger(CalificacionVista.class.getName()).log(Level.SEVERE, null, ex);
            }
        }
        return listaInstituciones;
    }

    public void setListaInstituciones(List<Institucion> listaInstituciones) {
        this.listaInstituciones = listaInstituciones;
    }

    public Institucion getSelectedInstitucion() {
        return selectedInstitucion;
    }

    public void setSelectedInstitucion(Institucion selectedInstitucion) {
        this.selectedInstitucion = selectedInstitucion;
    }

    public void onRowSelectInstitucion(SelectEvent event) {
        Institucion ins = (Institucion) event.getObject();
        txtColegio.setValue(ins.getIdInstitucion());
    }

    public ArrayList<SelectItem> getItemsGrupos() {
        try {
            Institucion insSelect = institucionLogica.consultarPorId(Integer.parseInt(txtColegio.getValue().toString()));
            List<Gradoinstitucion> grados = insSelect.getGradoinstitucionList();
            itemsGrupos = new ArrayList<>();
            for (int i = 0; i < grados.size(); i++) {
                itemsGrupos.add(new SelectItem(grados.get(i).getGrado().getIdGrado(), grados.get(i).getGrado().getNombregrado()));
            }
        } catch (Exception ex) {
            Logger.getLogger(CalificacionVista.class.getName()).log(Level.SEVERE, null, ex);
        }
        return itemsGrupos;
    }

    public void setItemsGrupos(ArrayList<SelectItem> itemsGrupos) {
        this.itemsGrupos = itemsGrupos;
    }

    public ArrayList<SelectItem> getItemsCursos() {
        try {
            Institucion insSelect = institucionLogica.consultarPorId(Integer.parseInt(txtColegio.getValue().toString()));
            List<Gradoinstitucion> grados = insSelect.getGradoinstitucionList();
            itemsCursos = new ArrayList<>();
            List<Curso> cursos;
            Integer codigoGrupo = Integer.parseInt(cmbGrupo.getValue().toString());
            for (int i = 0; i < grados.size(); i++) {
                if (grados.get(i).getGrado().getIdGrado() == codigoGrupo) {
                    cursos = grados.get(i).getCursoList();
                    for (int j = 0; j < cursos.size(); j++) {
                        System.out.println("curso "+cursos.get(j).getIdCurso());
                        itemsCursos.add(new SelectItem(cursos.get(j).getIdCurso(), cursos.get(j).getNombrecurso()));
                    }
                }
            }
            System.out.println("Tamaño de cursos "+itemsCursos.size());
        } catch (Exception ex) {
            Logger.getLogger(CalificacionVista.class.getName()).log(Level.SEVERE, null, ex);
        }
        return itemsCursos;
    }

    public void setItemsCursos(ArrayList<SelectItem> itemsCursos) {
        this.itemsCursos = itemsCursos;
    }

    public ArrayList<SelectItem> getItemsCategorias() {
        try {
            List<CategoriaExamen> categorias = categoriaExamenLogica.consultar();
            itemsCategorias = new ArrayList<>();
            for (int i = 0; i < categorias.size(); i++) {
                itemsCategorias.add(new SelectItem(categorias.get(i).getIdCategoriaExm(), categorias.get(i).getDescripcion()));
            }
        } catch (Exception ex) {
            Logger.getLogger(CalificacionVista.class.getName()).log(Level.SEVERE, null, ex);
        }
        return itemsCategorias;
    }

    public void setItemsCategorias(ArrayList<SelectItem> itemsCategorias) {
        this.itemsCategorias = itemsCategorias;
    }

    public ArrayList<SelectItem> getItemsTipo() {
        return itemsTipo;
    }

    public void setItemsTipo(ArrayList<SelectItem> itemsTipo) {
        this.itemsTipo = itemsTipo;
    }

    public InputText getTxtCurso() {
        return txtCurso;
    }

    public void setTxtCurso(InputText txtCurso) {
        this.txtCurso = txtCurso;
    }

    public InputText getTxtFecha() {
        return txtFecha;
    }

    public void setTxtFecha(InputText txtFecha) {
        this.txtFecha = txtFecha;
    }
    
    

    public void onChangeCmbGrupos() {
        System.out.println("Pinta los cursos??");
        itemsCursos=null;
        try {
            Institucion insSelect = institucionLogica.consultarPorId(Integer.parseInt(txtColegio.getValue().toString()));
            List<Gradoinstitucion> grados = insSelect.getGradoinstitucionList();
            itemsCursos = new ArrayList<>();
            List<Curso> cursos;
            Integer codigoGrupo = Integer.parseInt(cmbGrupo.getValue().toString());
            for (int i = 0; i < grados.size(); i++) {
                if (grados.get(i).getGrado().getIdGrado() == codigoGrupo) {
                    cursos = grados.get(i).getCursoList();
                    for (int j = 0; j < cursos.size(); j++) {
                        System.out.println("curso "+cursos.get(j).getIdCurso());
                        itemsCursos.add(new SelectItem(cursos.get(j).getIdCurso(), cursos.get(j).getNombrecurso()));
                    }
                }
            }
            System.out.println("Tamaño de cursos "+itemsCursos.size());
        } catch (Exception ex) {
            Logger.getLogger(CalificacionVista.class.getName()).log(Level.SEVERE, null, ex);
        }
    }

    public void onChangeCmbCategorias() {
        try {
            CategoriaExamen categoria = categoriaExamenLogica.consultarPorId(Integer.parseInt(cmbCategoriaExamen.getValue().toString()));
            List<Tipoexamen> tipos = categoria.getTipoexamenList();
            itemsTipo = new ArrayList<>();
            for (int i = 0; i < tipos.size(); i++) {
                itemsTipo.add(new SelectItem(tipos.get(i).getIdTipo(), tipos.get(i).getDescripcion()));
            }
        } catch (Exception ex) {
            Logger.getLogger(CalificacionVista.class.getName()).log(Level.SEVERE, null, ex);
        }
    }

    public void onChangeCmbCurso() {
        System.out.println("LIstadooo ");
        listaPremarcados = new ArrayList<>();
        if (!(cmbCurso.getValue().toString().equals("0"))) {
            try {
                Curso curso = cursoLogica.consultarPorId(Integer.parseInt(cmbCurso.getValue().toString()));
                listaPremarcados = curso.getPremarcadoList();
            } catch (Exception ex) {
                Logger.getLogger(CalificacionVista.class.getName()).log(Level.SEVERE, null, ex);
            }
        }
    }

    public Examen getSelectedExamen() {
        return selectedExamen;
    }

    public void setSelectedExamen(Examen selectedExamen) {
        this.selectedExamen = selectedExamen;
    }

    public void onRowSelectExamen(SelectEvent event) {
        listaEstudiantes = new ArrayList<>();
        Premarcado preSelected = (Premarcado) event.getObject();
        System.out.println("Premarcado "+preSelected.getPremarcadoPK().getIdExamen());
        List<Cursosestudiante> listadoEst = preSelected.getCurso().getCursosestudianteList();
        System.out.println("Tamaño de estudiantes curso "+listadoEst.size());
        txtPremarcado.setValue(preSelected.getPremarcadoPK().getIdExamen());
        txtCurso.setValue(preSelected.getPremarcadoPK().getIdCurso());
        txtFecha.setValue(preSelected.getFechapremarcado());
        List<Presentaexamen> presentaron = preSelected.getExamen().getPresentaexamenList();
        setSelectedPremarcado(preSelected);
            for (int j = 0; j < presentaron.size(); j++) {
                listaEstudiantes.add(presentaron.get(j).getEstudiante());               
            }                   
    }

    public Premarcado getSelectedPremarcado() {
        return selectedPremarcado;
    }

    public void setSelectedPremarcado(Premarcado selectedPremarcado) {
        this.selectedPremarcado = selectedPremarcado;
    }
    
    public void handleFileUpload(FileUploadEvent event) {
        ServletContext servletContext = (ServletContext) FacesContext.getCurrentInstance().getExternalContext().getContext();
        String rutaDestino = (String) servletContext.getRealPath("/dat");
        System.out.println("Ruta Server: " + rutaDestino);
        try {
            copyFile(rutaDestino, event.getFile().getFileName(), event.getFile().getInputstream());
            PremarcadoPK ppk = new PremarcadoPK(Integer.parseInt(txtPremarcado.getValue().toString()), Integer.parseInt(txtCurso.getValue().toString()));
            Premarcado pCalificar = premarcadoLogica.consultarPorId(ppk);
            System.out.println("Premarcado a calificar "+pCalificar.getPremarcadoPK().getIdExamen());
            calificacionLogica.leerCalificacion(rutaDestino + "\\" + event.getFile().getFileName(),pCalificar);
            FacesContext.getCurrentInstance().addMessage("mensajes", new FacesMessage(FacesMessage.SEVERITY_INFO, "Mensaje", "Las notas han sido cargadas Correctamente! puede generar la calificación."));
            btnCargarRespuestas.setDisabled(false); 
        } catch (IOException e) {
           FacesContext.getCurrentInstance().addMessage("mensajes", new FacesMessage(FacesMessage.SEVERITY_WARN, "Mensaje", e.getMessage()));
        } catch (Exception ex) {
            Logger.getLogger(CalificacionVista.class.getName()).log(Level.SEVERE, null, ex);
            FacesContext.getCurrentInstance().addMessage("mensajes", new FacesMessage(FacesMessage.SEVERITY_ERROR, "Mensaje", ex.getMessage()));
        }
    }
    
    public void copyFile(String rutaDestino, String fileName, InputStream in) {
        System.out.println("Copia archivo???");
        try {
            try (OutputStream out = new FileOutputStream(new File(rutaDestino + "\\" + fileName))) {
                System.out.println("Ruta Archivo: " + rutaDestino + "\\" +fileName);
                int read = 0;
                byte[] bytes = new byte[1024];
                
                while ((read = in.read(bytes)) != -1) {
                    out.write(bytes, 0, read);
                }
                in.close();
                out.flush();
            }
            System.out.println("New file created!");
        } catch (IOException e) {
            System.out.println(e.getMessage()+"Aqui errror");
        }
    }
    
    public void registrarNuevoEstudiante(){
        Estudiante estudiante = new Estudiante();
        
    }

    public List<Respuestasexamen> getListaRespuestas() {
        try {
            Integer sesion = Integer.parseInt(cmbSesion.getValue().toString());
            PremarcadoPK ppk = new PremarcadoPK(Integer.parseInt(txtPremarcado.getValue().toString()), Integer.parseInt(txtCurso.getValue().toString()));
            Premarcado pCalificar = premarcadoLogica.consultarPorId(ppk);
            listaRespuestas = respuestasExamenLogica.consultarxSesion(pCalificar.getExamen().getIdExamen(), sesion);
            System.out.println("Respuestas por sesion "+listaRespuestas.size());
        }catch(NullPointerException e){
            listaRespuestas = new ArrayList<>();
        }
        catch (Exception ex) {
            Logger.getLogger(CalificacionVista.class.getName()).log(Level.SEVERE, null, ex);
        }
        return listaRespuestas;
    }

    public void setListaRespuestas(List<Respuestasexamen> listaRespuestas) {
        this.listaRespuestas = listaRespuestas;
    }
    
    public void onCellEdit(CellEditEvent event) {
        Object oldValue = event.getOldValue();
        Object newValue = event.getNewValue();
        System.out.println("Llamo funcion");
        if(newValue != null && !newValue.equals(oldValue)) {
            FacesMessage msg = new FacesMessage(FacesMessage.SEVERITY_INFO, "Cell Changed", "Old: " + oldValue + ", New:" + newValue);
            FacesContext.getCurrentInstance().addMessage(null, msg);
        }
    }

    public Integer getCantidadPreguntas() {
        try {
            PremarcadoPK ppk = new PremarcadoPK(Integer.parseInt(txtPremarcado.getValue().toString()), Integer.parseInt(txtCurso.getValue().toString()));
            Premarcado pCalificar = premarcadoLogica.consultarPorId(ppk);
            Integer sesion = Integer.parseInt(cmbSesion.getValue().toString());
            List<Examenpreguntas> preguntas = pCalificar.getExamen().getExamenpreguntasList();
            int cantidad = 0;
            for (int i = 0; i <preguntas.size(); i++) {
                if(preguntas.get(i).getSesion()==sesion){
                    cantidad++;
                }                
            }
            cantidadPreguntas=cantidad;
            System.out.println("Cantidad de preguntas "+cantidadPreguntas);
        }catch(NullPointerException e){
            cantidadPreguntas=0;
        }
        catch (Exception ex) {
            Logger.getLogger(CalificacionVista.class.getName()).log(Level.SEVERE, null, ex);
        }
        return cantidadPreguntas;
    }

    public void setCantidadPreguntas(Integer cantidadPreguntas) {
        this.cantidadPreguntas = cantidadPreguntas;
    }

    public SelectOneMenu getCmbSesion() {
        return cmbSesion;
    }

    public void setCmbSesion(SelectOneMenu cmbSesion) {
        this.cmbSesion = cmbSesion;
    }

    public ArrayList<SelectItem> getItemsSesiones() {
        try {
            PremarcadoPK ppk = new PremarcadoPK(Integer.parseInt(txtPremarcado.getValue().toString()), Integer.parseInt(txtCurso.getValue().toString()));
            Premarcado pCalificar = premarcadoLogica.consultarPorId(ppk);
            int cantidad = pCalificar.getExamen().getIdTipo().getNumerosesiones();
            System.out.println("Cantidad Sesiones"+cantidad);
            itemsSesiones = new ArrayList<>();
            for (int i = 1; i <= cantidad; i++) {
                itemsSesiones.add(new SelectItem(i, "Sesión "+i));
            }
        } catch (Exception ex) {
            Logger.getLogger(CalificacionVista.class.getName()).log(Level.SEVERE, null, ex);
        }
        return itemsSesiones;
    }

    public void setItemsSesiones(ArrayList<SelectItem> itemsSesiones) {
        this.itemsSesiones = itemsSesiones;
    }

    public List<Integer> getPreguntas() {
        preguntas = new ArrayList<>();
        try {
            PremarcadoPK ppk = new PremarcadoPK(Integer.parseInt(txtPremarcado.getValue().toString()), Integer.parseInt(txtCurso.getValue().toString()));
            Premarcado pCalificar = premarcadoLogica.consultarPorId(ppk);
            Integer sesion = Integer.parseInt(cmbSesion.getValue().toString());
            System.out.println("Sesion a validar"+sesion);
            List<Examenpreguntas> preguntasE = pCalificar.getExamen().getExamenpreguntasList();
            System.out.println("Preguntas de esa sesión "+preguntasE.size());
            
            for (int i = 0; i <preguntasE.size(); i++) {
                if(preguntasE.get(i).getSesion()==sesion){
                    System.out.println("Si es la sesion");
                    preguntas.add(preguntasE.get(i).getNropregunta());
                }                
            }
            
        }catch(NullPointerException e){
            //No ha seleccionado una sesion
        } 
        catch (Exception ex) {
            Logger.getLogger(CalificacionVista.class.getName()).log(Level.SEVERE, null, ex);
        }
        return preguntas;
    }

    public void setPreguntas(List<Integer> preguntas) {
        this.preguntas = preguntas;
    } 
    
    public String getRespuesta(Integer idEstudiante, Integer nroPregunta){
        String clave="";
        try {
            Integer sesion = Integer.parseInt(cmbSesion.getValue().toString());
            PremarcadoPK ppk = new PremarcadoPK(Integer.parseInt(txtPremarcado.getValue().toString()), Integer.parseInt(txtCurso.getValue().toString()));
            Premarcado pCalificar = premarcadoLogica.consultarPorId(ppk);
            System.out.println("Datos a consultar "+pCalificar.getExamen().getIdExamen()+" + "+sesion+" + "+idEstudiante+" + "+nroPregunta);
            clave = respuestasExamenLogica.respuestaPregunta(pCalificar.getExamen().getIdExamen(), sesion, idEstudiante, nroPregunta);            
        } catch (Exception ex) {
            Logger.getLogger(CalificacionVista.class.getName()).log(Level.SEVERE, null, ex);
        }
        return clave;
    }

    public String getClaveP() {
        return claveP;
    }

    public void setClaveP(String claveP) {
        this.claveP = claveP;
    }
    
    
}
